package com.tedu.api.io;

import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.FileFilter;

/**
 * listFiles()    返回值：数组----File[]  直接遍历文件 ， 文件夹
 * 遍历文件或者文件夹同时，过滤遍历出来的文件，文件夹
 * 需求：获取API项目下名字开头叫以s开头的名称
 * listFiles(Filter接口)    返回值：数组----File[]
 * Filter过滤器接口：过滤遍历出来的文件，文件夹
 */
public class FilterAPI {
    public void main(String[] args) {
        //获取“API”项目下：File构造器传入"."
        File file = new File(".");//"."代表当前项目下
        //4.创建过滤器实现类
        MyFilter myFilter = new MyFilter();
        //获取API项目下的所有文件夹 并且必须是以s开头
        File[] subs = file.listFiles(); //传入过滤器接口对象
        //5.遍历数组
        for (int i = 0; i < subs.length; i++) {//5.1i获取数组下标
            //5.2数组名【下标】
            System.out.println("过滤后文件夹：" + subs[i].getName());
        }
    }
    //①自己实现类 MyFilter 实现FileFilter接口：重写所有方法
    class MyFilter implements FileFilter {
        //②accept方法：获取到File的信息，【逻辑判断】条件满足：返回值：true
        public boolean accept(File pathname) {
            //③ 逻辑：判断获取的文件夹名字是“s”开头
            //3.1获取到过滤器传给我们pathname【File】的名称
            String name = pathname.getName();
            //3.2 打印获取到的【File】的名称
            System.out.println("获取名称是" + name);
            //3.3 判断名称以s开头 文件夹
            //String字符串提供方法
            //返回值boolean startWith("s") 获取字符串首字符 返回：true
            return name.startsWith("s");
        }
    }
    @Test
    public void testZuoYe(){
        String str="我6";
        boolean b=str.startsWith("我");
        System.out.println("yeye："+b);
    }
}
